package com.imooc.ecommerce.service;

import com.imooc.ecommerce.vo.UsernameAndPassword;

/**
 * <p>JWT 相关服务接口定义
 *
 * @author Yaxi.Zhang
 * @since 2022/11/2 00:53
 */
public interface IJWTService {

    /**
     * <p>生成 JWT Token, 使用默认的超时时间
     */
    String generateToken(String username, String password) throws Exception;

    /**
     * <p>生成指定超时时间的 Token, 单位是天
     */
    String generateToken(String username, String password, int expire) throws Exception;

    /**
     * <p>生成永不过期的 JWT Token，测试使用
     */
    String generateTokenNoExpire(String username, String password) throws Exception;

    /**
     * <p>注册用户并生成 Token 返回
     */
    String registerUserAndGenerateToken(UsernameAndPassword usernameAndPassword) throws Exception;
}
